/////////////////////////////////////////////////////////////////////////////////////
// Header Protection
#ifndef _DEFINITIONS_H_
#define _DEFINITIONS_H_

/////////////////////////////////////////////////////////////////////////////////////
// Standard Integer Types
typedef __int32          int_t;
typedef unsigned __int32 uint_t;

/////////////////////////////////////////////////////////////////////////////////////
// Specific Size Integer Types
typedef __int8           int8_t;
typedef __int16          int16_t;
typedef __int32          int32_t;
typedef __int64          int64_t;
typedef unsigned __int8  uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;

/////////////////////////////////////////////////////////////////////////////////////
// Standard Floating Point Type
typedef float            float_t;

/////////////////////////////////////////////////////////////////////////////////////
// Specific Size Floating Point Types
typedef float            float32_t;
typedef double           float64_t;

/////////////////////////////////////////////////////////////////////////////////////
// Boolean Type
typedef bool             bool_t;

/////////////////////////////////////////////////////////////////////////////////////
// Character Type
typedef wchar_t          char_t;

/////////////////////////////////////////////////////////////////////////////////////
// Byte Types
typedef unsigned __int8  byte_t;
typedef unsigned __int16 word_t;
typedef unsigned __int32 dword_t;
typedef unsigned __int64 qword_t;

/////////////////////////////////////////////////////////////////////////////////////
// Constants
const bool_t  CE_FALSE    = (bool_t)0;
const bool_t  CE_TRUE     = (bool_t)1;
const int_t   CE_NULL     = (int_t)0;
const float_t CE_PI       = (float_t)3.1415926535897932384;
const float_t CE_PI_DIV_2 = (float_t)1.5707963267948966192;

/////////////////////////////////////////////////////////////////////////////////////
// Reference Types
#include "Types\String.h"
#include "Types\Flag.h"
#include "Types\List.h"
#include "Types\Stack.h"
#include "Types\Vector.h"
#include "Types\Matrix.h"
#include "Types\Plane.h"
#include "Types\Frustum.h"
#include "Types\Mutex.h"
#include "Types\Stopwatch.h"
#include "Types\File.h"

/////////////////////////////////////////////////////////////////////////////////////
// Interfaces
#include "Interfaces\Singleton.h"
#include "Interfaces\Listener.h"
#include "Interfaces\Process.h"

/////////////////////////////////////////////////////////////////////////////////////
// Header Protection
#endif // _DEFINITIONS_H_
